package com.mdd.admin.validate;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import com.mdd.common.validator.annotation.IDMust;

/**
 * 新建合同回款信息参数
 * @author LikeAdmin
 */
@Data
@ApiModel("新建合同回款信息更新参数")
public class AnswerContractUpdateValidate implements Serializable {

    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "编号")
    private Integer id;
    @ApiModelProperty(value = "创建人")
    private String creator;

    @ApiModelProperty(value = "业务人员")
    private String servicer;

    @ApiModelProperty(value = "合同编号")
    private String contractId;

    @ApiModelProperty(value = "合同名称")
    private String contractName;

    @ApiModelProperty(value = "客户名称")
    private String customerName;

    @ApiModelProperty(value = "案件名称")
    private String caseName;

    @ApiModelProperty(value = "代理费")
    private BigDecimal agencyFee;

    @ApiModelProperty(value = "合同金额")
    private BigDecimal contractValue;

    @ApiModelProperty(value = "币别")
    private String currency;

    @ApiModelProperty(value = "开票币别")
    private String paymentCurrency;

    @ApiModelProperty(value = "官费")
    private BigDecimal officialFee;

    @ApiModelProperty(value = "币别id")
    private Long currencyid;

    @ApiModelProperty(value = "开票币别id")
    private Long paymentCurrencyid;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @NotNull(message = "topUrgent参数缺失")
    @ApiModelProperty(value = "回款时间")
    private String topUrgent;

    @ApiModelProperty(value = "计划回款时间")
    private String planTopUrgent;

    @NotNull(message = "amountCashed参数缺失")
    @ApiModelProperty(value = "回款金额")
    private BigDecimal amountCashed;

    @NotNull(message = "paymentType参数缺失")
    @ApiModelProperty(value = "回款类型")
    private String paymentType;

    @ApiModelProperty(value = "回款代理日期")
    private String collectionAgentDate;

    @ApiModelProperty(value = "回款代理费")
    private BigDecimal collectingAgencyFees;

    @NotNull(message = "collectingCompanyAccount参数缺失")
    @ApiModelProperty(value = "收款公司账户")
    private String collectingCompanyAccount;

    @ApiModelProperty(value = "开票金额")
    private String invoiceAmount;

    @ApiModelProperty(value = "开票时间")
    private String timeBilling;

    @NotNull(message = "paymentMethod参数缺失")
    @ApiModelProperty(value = "付款方式")
    private String paymentMethod;

    @ApiModelProperty(value = "合并回款")
    private String consolidatedCollection;

    @ApiModelProperty(value = "发票号码")
    private String invoiceNumber;

    @ApiModelProperty(value = "收款人")
    private String payee;

    @ApiModelProperty(value = "收款公司账户id")
    private Long collectingCompanyAccountid;

}
